package com.andaily.service;

import com.andaily.domain.dto.log.*;

import java.util.List;

/**
 * @author Shengzhao Li
 */
public interface LogService {

    LogDto loadLogDto(String guid);

    List<LogTypeDto> loadAvailableLogTypes();

    void persistLogDto(LogDto logDto);

    LogOverviewDto loadLogOverview(LogOverviewDto overviewDto);

    LogDetailsDto loadLogDetails(String guid);

    int loadTotalLog();

    LogTypeOverviewDto loadLogTypeOverview(LogTypeOverviewDto overviewDto);

    LogTypeDto loadLogTypeDetails(String guid);

    LogTypeDto loadLogType(String guid);

    void persistLogTypeDto(LogTypeDto logTypeDto);

    void deleteLogType(String guid);

    void archiveLog(String guid);

    LogCommentDto loadLogCommentDto(String guid, String logGuid);

    void persistLogComment(LogCommentDto logCommentDto);

    LogCommentDto loadLogCommentDto(String guid);

    void archiveLogComment(String guid);

    LogSettingDto loadLogSettingDto();

    void updateLogSetting(LogSettingDto logSettingDto);

    void setDefaultLogType(String guid);
}
